/**
 * 版权所有，侵权必究！
 */

package com.commons.tools.constant;

/**
 * 常量
 *
 * @author
 * @since 1.0.0
 */
public interface Constant {
    /**
     * 成功
     */
    int SUCCESS = 1;
    /**
     * 失败
     */
    int FAIL = 0;
    /**
     * OK
     */
    String OK = "OK";
    /**
     * 用户标识
     */
    String USER_KEY = "userId";
    /**
     * 菜单根节点标识
     */
    Long MENU_ROOT = 0L;
    /**
     * 部门根节点标识
     */
    Long DEPT_ROOT = 0L;
    /**
     * 数据字典根节点标识
     */
    Long DICT_ROOT = 0L;
    /**
     *  升序
     */
    String ASC = "asc";
    /**
     * 降序
     */
    String DESC = "desc";
    /**
     * 删除字段名
     */
    String DEL_FLAG = "del_flag";
    /**
     * 创建时间字段名
     */
    String CREATE_DATE = "create_date";

    /**
     * 数据权限过滤
     */
    String SQL_FILTER = "sqlFilter";
    /**
     * 当前页码
     */
    String PAGE = "page";
    /**
     * 每页显示记录数
     */
    String LIMIT = "limit";
    /**
     * 排序字段
     */
    String ORDER_FIELD = "orderField";
    /**
     * 排序方式
     */
    String ORDER = "order";
    /**
     * token header
     */
    String TOKEN_HEADER = "token";

    /**
     * 租户编码
     */
    String TENANT_CODE = "tenantCode";

    /**
     * 费用统计报表类型
     */
    enum CostStatType {

        /**
         * 自定义报表
         */
        CUSTOM("custom"),
        /**
         * 月报表
         */
        MONTH("month"),
        /**
         * 季度报表
         */
        QUARTER("quarter"),
        /**
         * 年报表
         */
        YEAR("year");

        private String value;

        CostStatType(String value) {
            this.value = value;
        }

        public String getValue() {
            return value;
        }
    }

    /**
     * 统计平台类型
     */
    enum CostPlatformType {

        /**
         * 所有云平台
         */
        ALL_CLOUD(-1),
        /**
         * 公有云
         */
        PUBLIC_CLOUD(1),
        /**
         * 私有云
         */
        PRIVATE_CLOUD(0);

        private int value;

        CostPlatformType(int value) {
            this.value = value;
        }

        public int getValue() {
            return value;
        }
    }
}